package main

import "fmt"

/*
* Author: JacksonCoder
* CreateTime: 2025-10-28
 */

//定义接口
type Animal interface{
	Speak() string
}

// 实现接口的不同类型
type Dog struct{}

func (d Dog) Speak() string{
	return "Woof!"
}

type Cat struct {}

func(c Cat) Speak() string{
	return "Meow!"
}

// 使用接口的函数
func MakeAnimalSpeak(a Animal){
	fmt.Println(a.Speak())
}

func main(){
	dog := Dog{}
	cat := Cat{}

	MakeAnimalSpeak(dog)
	MakeAnimalSpeak(cat)

}
